@echo off
echo ===== 第二课堂管理系统结构优化脚本 =====
echo 此脚本将自动执行系统结构优化步骤，包括删除重复的控制器和前端文件，以及更新数据库菜单和权限配置。

REM 设置数据库连接参数
set DB_USER=root
set DB_PASSWORD=123456
set DB_NAME=scms

echo 步骤1: 备份系统...
REM 创建备份目录
set BACKUP_DIR=backup\%date:~0,4%%date:~5,2%%date:~8,2%
mkdir %BACKUP_DIR%

REM 备份数据库
echo 正在备份数据库...
mysqldump -u %DB_USER% -p%DB_PASSWORD% %DB_NAME% > %BACKUP_DIR%\scms_backup.sql
if %ERRORLEVEL% NEQ 0 (
    echo 数据库备份失败，请检查数据库连接参数。
    goto :error
)

REM 备份代码
echo 正在备份代码...
xcopy /E /I /Y scms-admin %BACKUP_DIR%\scms-admin
xcopy /E /I /Y scms-ui %BACKUP_DIR%\scms-ui
echo 备份完成！

echo 步骤2: 删除重复的控制器...
REM 删除 CreditRecordController.java
if exist "scms-admin\src\main\java\com\scms\secondclass\controller\CreditRecordController.java" (
    echo 正在删除 CreditRecordController.java...
    del /Q "scms-admin\src\main\java\com\scms\secondclass\controller\CreditRecordController.java"
)

REM 删除 scms-admin 中重复的控制器
if exist "scms-admin\src\main\java\com\scms\secondclass\controller\ActivityController.java" (
    echo 正在删除 ActivityController.java...
    del /Q "scms-admin\src\main\java\com\scms\secondclass\controller\ActivityController.java"
)

if exist "scms-admin\src\main\java\com\scms\secondclass\controller\ActivityCategoryController.java" (
    echo 正在删除 ActivityCategoryController.java...
    del /Q "scms-admin\src\main\java\com\scms\secondclass\controller\ActivityCategoryController.java"
)

if exist "scms-admin\src\main\java\com\scms\secondclass\controller\ActivityEnrollmentController.java" (
    echo 正在删除 ActivityEnrollmentController.java...
    del /Q "scms-admin\src\main\java\com\scms\secondclass\controller\ActivityEnrollmentController.java"
)

echo 步骤3: 删除重复的前端文件...
REM 删除 record.js
if exist "scms-ui\src\api\secondclass\record.js" (
    echo 正在删除 record.js...
    del /Q "scms-ui\src\api\secondclass\record.js"
)

if exist "scms-ui\src\api\api\secondclass\record.js" (
    echo 正在删除 api\secondclass\record.js...
    del /Q "scms-ui\src\api\api\secondclass\record.js"
)

REM 删除 record 目录
if exist "scms-ui\src\views\secondclass\record" (
    echo 正在删除 record 目录...
    rmdir /S /Q "scms-ui\src\views\secondclass\record"
)

echo 步骤4: 更新数据库菜单和权限配置...
echo 正在执行SQL脚本...
mysql -u %DB_USER% -p%DB_PASSWORD% %DB_NAME% < sql\optimize_menu_structure.sql
if %ERRORLEVEL% NEQ 0 (
    echo SQL脚本执行失败，请检查数据库连接参数。
    goto :error
)

echo 步骤5: 编译系统...
echo 正在清理项目...
call mvn clean
echo 清理完成！

echo 正在编译项目...
call mvn package -DskipTests
if %ERRORLEVEL% NEQ 0 (
    echo 项目编译失败，请检查错误信息。
    goto :error
)
echo 编译完成！

echo 步骤6: 删除重复的Mapper XML文件...
if exist ".\scms-admin\target\classes\mapper\secondclass\" (
    echo 正在删除重复的Mapper XML文件...
    del /Q ".\scms-admin\target\classes\mapper\secondclass\*.xml"
    echo 删除完成！
) else (
    echo 目录不存在，无需删除。
)

echo ===== 系统结构优化完成！=====
echo 现在您可以启动系统并测试功能。
echo 启动命令: cd scms-admin && java -jar target\scms-admin.jar
goto :end

:error
echo 优化过程中出现错误，请查看上面的错误信息。
echo 您可以从备份目录 %BACKUP_DIR% 恢复系统。

:end
pause 